Autonomous cutting element for sculpting grass

ABSTRACT

An apparatus comprises a vehicle, a sensing unit, and a control unit. The vehicle is movable in a path and has a first number of cutting elements. The sensing unit detects an obstacle in the path. The control unit is connected to the first number of cutting elements and is configured to autonomously adjust a height of a second number of cutting elements of the first number of cutting elements in response to the sensing unit detecting the obstacle in the path.

FIELD OF THE INVENTION

The present disclosure relates generally to systems and methods forcontrol systems, and more particularly, to systems and methods forcutting element control. Still more specifically, the present disclosurerelates to a method and system for a cutting element for sculptinggrass.

BACKGROUND OF THE INVENTION

The use of robotic devices to perform physical tasks has increased inrecent years. Mobile robotic devices can be used to perform a variety ofdifferent tasks. These mobile devices may operate in semi-autonomous orfully autonomous modes. These robotic devices may have an integratednavigation system for performing the variety of different tasks insemi-autonomous or fully autonomous modes.

As robotic devices are able to perform physical tasks autonomously,human intervention and supervision of the robotic devices is often notnecessary. For fully autonomous robotic devices, nearly no humanintervention is necessary. The lack of human intervention andsupervision may be desirable in many cases. However, the lack of humanintervention and supervision also presents issues that the roboticdevice may need to be capable of handling.

SUMMARY

An embodiment of the present invention provides an apparatus comprisinga vehicle, a sensing unit, and a control unit. The vehicle is movable ina path and has a first number of cutting elements. The sensing unit maydetect an obstacle in the path. The control unit is connected to thefirst number of cutting elements and may be configured to autonomouslyadjust a height of a second number of cutting elements of the firstnumber of cutting elements in response to the sensing unit detecting theobstacle in the path.

Another embodiment of the present invention provides a method forcontrolling cutting elements in a vehicle. The method comprises moving avehicle having a first number of cutting elements in a path, detectingan obstacle in the path; and autonomously adjusting a height of a secondnumber of cutting elements of the first number of cutting elements inresponse to detecting the obstacle in the path.

Yet another embodiment of the present invention provides a computerprogram product comprising a computer readable storage medium andprogram code, stored on the computer readable storage medium. Theprogram code includes instructions for moving a vehicle having a firstnumber of cutting elements in a path, instructions for detecting anobstacle in the path, and instructions for autonomously adjusting aheight of a second number of cutting elements of the first number ofcutting elements in response to detecting the obstacle in the path.

Still yet another embodiment of the present invention provides a vehiclecomprising a plurality of cutting elements, a sensing unit, a processorunit, and a control unit. The vehicle may be movable on a path. Thesensing unit may be configured to detect an obstacle in the path, aposition of the obstacle in the path, a size of the obstacle in thepath, and a distance between the plurality of cutting elements and theobstacle. The processor unit may be configured to determine a number ofcutting elements to be autonomously adjusted, a height for each of thenumber of cutting elements to be autonomously adjusted, and a timing foreach of the number of cutting elements to be autonomously adjusted. Thecontrol unit may be connected to the plurality of cutting elements. Thecontrol unit may be configured to autonomously adjust each of the numberof cutting elements of the plurality of cutting elements according tothe height and the timing determined for each of the number of cuttingelements.

The features, functions, and advantages can be achieved independently invarious embodiments of the present invention, or may be combined in yetother embodiments in which further details can be seen with reference tothe following description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the illustrativeembodiments are set forth in the appended claims. The illustrativeembodiments, however, as well as a preferred mode of use, furtherobjectives and advantages thereof, will best be understood by referenceto the following detailed description of an illustrative embodiment ofthe present invention when read in conjunction with the accompanyingdrawings, wherein:

FIG. 1 is an illustration of a worksite management environment in whichan illustrative embodiment may be implemented;

FIG. 2 is an illustration of a worksite management environment inaccordance with an illustrative embodiment;

FIG. 3 is an illustration of a data processing system in accordance withan illustrative embodiment;

FIG. 4 is an illustration of a sensing system in accordance with anillustrative embodiment;

FIG. 5 is an illustration of a side view of a vehicle having a pluralityof cutting elements in accordance with an illustrative embodiment;

FIG. 6 is an illustration of a front view of a vehicle having aplurality of cutting elements in accordance with an illustrativeembodiment;

FIG. 7 is an illustration of a side view of a vehicle having a pluralityof cutting elements in accordance with an illustrative embodiment;

FIG. 8 is an illustration of a front view of a vehicle having aplurality of cutting elements in accordance with an illustrativeembodiment;

FIG. 9 is an illustration of a vehicle sculpting grass in accordancewith an illustrative embodiment;

FIG. 10 is an illustration of a flowchart of a process for controllingcutting elements in a vehicle in accordance with an illustrativeembodiment;

FIG. 11 is an illustration of a flowchart of a process for controllingcutting elements in a vehicle in accordance with an illustrativeembodiment;

FIG. 12 is an illustration of a flowchart of a process for controllingcutting elements in a vehicle in accordance with an illustrativeembodiment; and

FIG. 13 is an illustration of a flowchart of a process for controllingcutting elements in a vehicle in accordance with an illustrativeembodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to FIG. 1, an illustration of a worksite managementenvironment is depicted in which an illustrative embodiment may beimplemented. In this illustrative example, worksite managementenvironment 100 includes network data processing system 101 and worksite102.

Network data processing system 101 is a network of computers in whichembodiments may be implemented. Network data processing system 101contains network 103, which is the medium used to provide communicationlinks between various devices and computers connected together withinnetwork data processing system 101. Network 103 may include connections,such as wire, wireless communication links, or fiber optic cables.

In the depicted example, server 104 connects to network 103 along withstorage unit 106. In addition, client 108 connects to network 103.Client 108 may be, for example, one or more personal computers ornetwork computers. In the depicted example, server 104 provides data,such as boot files, operating system images, and applications to client108. Client 108 is a client to server 104 in this example. Vehicle 110is also a client that may exchange information with client 108. Vehicle110 also may exchange information with server 104. Vehicle 110 mayexchange data with different computers through a wireless communicationslink while in-motion or any other type of communications link while atrest. In these examples, server 104, and client 108 may be computers.Network data processing system 101 may include additional servers,clients, and other devices not shown.

In the depicted example, network data processing system 101 is theInternet with network 103 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. Of course, network data processing system 101 also maybe implemented as a number of different types of networks, such as forexample, an intranet, a local area network (LAN), or a wide area network(WAN).

Worksite management environment 100 further includes worksite 102 to bemanaged by vehicle 110 and/or a number of vehicles. For example,worksite 102 may be a structure, building, area, yard, golf course,indoor environment, outdoor environment, and/or any other suitableworksite or combination of worksites. Vehicle 110 may be any type ofvehicle including, without limitation, a mower, a tractor, asemi-autonomous vehicle, a fully autonomous vehicle, a mobile roboticmachine, a service robot, a field robot, a robotic mower, and/or anyother autonomous vehicle.

As used herein, a vehicle may be considered to be “autonomous” by beingcapable of operating independently without human intervention, aid,and/or supervision. Thus, a vehicle may be “autonomous” in that it iscapable of performing a task without human intervention, aid, and/orsupervision. Also as used herein, a vehicle may be considered to be“semi-autonomous” by being capable of performing only some or part oftasks without human intervention, aid, and/or supervision.

In this depicted example, worksite 102 includes items to be managed 112.Items to be managed 112 may be managed by vehicle 110 and/or any numberof different vehicles. For example, without limitation items to bemanaged 112 may include at least one of grass, trees, shrubs, and/or anyother suitable item to be managed or combination of items. Worksite 102further includes obstacles 114 which may present issues in themanagement of worksite 102. For example, without limitation obstaclesmay include at least one of any number of rocks, roots, branches,sprinkler system components, animals, human beings, and/or any otherobstacles that may present issues in the management of worksite 102.

As used herein, the phrase “at least one of”, when used with a list ofitems, means that different combinations of one or more of the items maybe used and only one of each item in the list may be needed. Forexample, “at least one of item A, item B, and item C” may include, forexample, without limitation, item A or item A and item B. This examplealso may include item A, item B, and item C, or item B and item C.

FIG. 1 is intended as an example, and not as an architectural limitationfor different embodiments. It should be appreciated that FIG. 1 is onlyexemplary and is not intended to assert or imply any limitation withregard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environments may bemade.

The different illustrative embodiments recognize and take into account anumber of different considerations. For example, the differentillustrative embodiments recognize and take into account that obstaclesin the path of the mower may cause problems for the mower and/or theobstacles. The different illustrative embodiments recognize that onesolution may involve a deck of mowing blades that is capable of beingraised and lowered manually. However, manual tasks may not be desired insome cases. Further, raising and lowering of an entire deck of mowingblades may result in an area of unmown grass around the obstacle thatmay need to be separately managed. Separate management of areas canincrease the time and energy expended.

The different illustrative embodiments further recognize and take intoaccount that another solution may involve a deck of mowing blades thatis capable of being stopped and restarted manually. However, manualtasks may not be desired in some cases. Further, stopping and restartingof an entire deck of mowing blades may result in an area of unmown grassaround the obstacle that may need to be separately managed. Separatemanagement of areas can increase the time and energy expended.

The different illustrative embodiments further recognize and take intoaccount that it may be desirable to sculpt grass into designs. Thedifferent illustrative embodiments recognize that one solution mayinvolve manual sculpting of grass. However, as discussed, manual tasksmay not be desired in some cases. Further, manual sculpting may resultin design inconsistencies due to manual operation errors. While physicalboundaries and/or stenciling may be incorporated to reduce designinconsistencies, these methods may require additional preparation timeand costs.

Thus, the different illustrative embodiments provide a method andapparatus for an autonomous cutting element for sculpting grass. In oneillustrative embodiment, an apparatus comprises a vehicle, a sensingunit, and a control unit. The vehicle is movable in a path and has afirst number of cutting elements. The sensing unit detects an obstaclein the path. The control unit is connected to the first number ofcutting elements and is configured to autonomously adjust a height of asecond number of cutting elements of the first number of cuttingelements in response to the sensing unit detecting the obstacle in thepath.

The different illustrative embodiments further provide an apparatuscomprising a computer readable storage medium and a processor unit. Thecomputer readable storage medium stores program code for a design to beformed into a pattern. The processor unit executes the program code. Theprogram code, when executed by the processor unit, is adapted to cause acontrol unit to autonomously control a plurality of cutting elements toform the pattern.

With reference now to FIG. 2, an illustration of a worksite managementenvironment is depicted in accordance with an illustrative embodiment.In this illustrative example, worksite management environment 200includes vehicle 202, path 204 and control system 206. Vehicle 202 maybe an example of one implementation of vehicle 110 in FIG. 1.

Vehicle 202 includes plurality of cutting elements 208. As used herein,a plurality, when referring to items, is at least more than one item.Plurality of cutting elements 208 are connected to vehicle 202. Forexample, plurality of cutting elements 208 may be connected underneathvehicle 202, near the ground. For example, with out limitation,plurality of cutting elements 208 may be blades and/or wires that rotateat a speed to cut grass and/or other items beneath vehicle 202.Plurality of cutting elements 208 may be comprised of any metal,graphite, and/or plastic materials suitable for cutting. Plurality ofcutting elements 208 may also be compromised of non-solid cuttingelements including, without limitation, laser and/or high pressurefluid.

As used herein, a first component may be considered to be connected to asecond component by being secured to the second component, bonded to thesecond component, fastened to the second component, and/or connected tothe second component in some other suitable manner. The first componentalso may be connected to the second component through using a thirdcomponent. The first component may also be considered to be connected tothe second component by being formed as part of, and/or an extension of,the second component.

In this illustrative example, plurality of cutting elements 208 includesnumber of cutting elements 210. As used herein, “number” when referringto items is at least one or more items. For example, plurality ofcutting elements 208 may include two or more individual cuttingelements. Number of cutting elements 210 may include as few as onecutting element, but no more cutting elements than are included inplurality of cutting elements 210. For example, without limitation,plurality of cutting elements 208 may include four individual cuttingelements, while number of cutting elements 210 includes anywhere fromone to four individual cutting elements of plurality of cutting elements208. In another example, vehicle 202 may have a first number of cuttingelements, while number of cutting elements 210 may be a second number ofcutting elements. Also, the cutting elements of the first number ofcutting elements may be the same as the second number of cuttingelements. Thus, for example, vehicle 202 may have as few as one cuttingelement in vehicle 202 that may be autonomously controlled.

In this example, vehicle 202 may move on path 204. Path 204 may be anarea being approached by vehicle 202. For example, without limitation,path 204 may be a width of a portion of lawn to be mown by vehicle 202according to a plan. Path 204 includes items to be managed 212. Items tobe managed 212 may be an example of items to be managed 112 in FIG. 1.Items to be managed 212 may be on path 204 and may be managed by vehicle202. In one example, items to be managed 212 may be grass and path 204may be a path in a lawn that is mown by vehicle 202.

In this illustrative example, path 204 further includes obstacle 214.Obstacle 214 may be one of a number of obstacles on path 204, such asobstacles 114 in FIG. 1. Obstacle 214 is anything on path 204 that maypresent issues as vehicle 202 moves on path 204. These issues may bepresent for plurality of cutting elements 208, vehicle 202, and/orobstacle 214 as vehicle 202 moves on path 204. Without limitation, theseissues may relate to anything from safety and/or damage to appearanceand/or aesthetics. For example, obstacle 214 may be an obstacle on path204 that vehicle 202 is moving towards. If plurality of cutting elements208 were to strike obstacle 214 on path 204, damage may be caused toplurality of cutting elements 208, vehicle 202, obstacle 214 and/oranything else in the surrounding area.

As depicted, obstacle 214 has size 216, position 218, and distance 220.Size 216 of obstacle 214 may be dimensions of obstacle 214 such as forexample height, width, length, gradient, slope, and/or any otherascertainable dimensions. Position 218 is a position of obstacle 214 onpath 204. Position 218 may also be a function of size 216 of obstacle214 on path 204. For example, position 218 may be only a portion of path204. Alternatively, obstacle 214, and thus position 218 of obstacle 214on path 204, may be larger than path 204 and/or include portions not onpath 204. Further, obstacle 214 has distance 220. In this example,distance 220 is a distance between obstacle 214 and plurality of cuttingelements 208.

As illustrated, worksite management environment 200 includes controlsystem 206. Control system 206 may be configured to control vehicle 202and/or plurality of cutting elements 208. In this example, controlsystem 206 includes sensing system 222, data processing system 224,navigational system 226, as well as control unit 228.

In this illustrative example, sensing system 222 is configured to detectobstacles 214 that may present issues for vehicle 202. Sensing system222 may be used to detect any or all of size 216, position 218, anddistance 220 of obstacle 214. In this example, sensing system 222 isfurther configured to send this information to data processing system224. Sensing system 222 may include a number of different sensingdevices. Sensing system 222 may be connected to, and/or located on,vehicle 202. Alternatively, sensing system 222 may be located entirelyseparate from vehicle 202. Additionally, sensing system 222 may includeboth devices located on vehicle 202 and devices located separate fromvehicle 202.

In this illustrative example, data processing system 224 is connected tosensing system 222, navigational system 226, as well as control unit228. Data processing system 224 may be an example of one implementationof network data processing system 101 in FIG. 1. Data processing system224 may be connected to, and/or located in, vehicle 202. Alternatively,data processing system 224 may be located entirely separate from vehicle202 and be connected to vehicle 202 via a wireless connection.Additionally, data processing system 224 may include both componentslocated on vehicle 202 and components located separate from vehicle 202.

In this example, navigation system 226 provides a system for controllingthe mobility, positioning, and navigation for vehicle 202. Navigationsystem 226 may be used to plan and/or navigate tasks for planning ofpath 204 and worksite area coverage in worksite management environment200. Navigation system 226 may be integrated with sensing system 222 toaid in the navigation of vehicle 202. For example, navigation system 226may use data received from any number of sensing devices of sensingsystem. Navigation system 226 may also run independently of sensingsystem 222.

Control system 206 further includes control unit 228. Control unit 228is connected to plurality of cutting elements 208. Control unit 228 isconfigured to control each cutting element in plurality of cuttingelements 208 individually, or as part of a group of cutting elements.For example, without limitation, control unit 228 may be configured toraise, lower, and/or adjust a height of each cutting element inplurality of cutting elements 208. Further, control unit 228 may beconfigured to stop and/or start cutting by each cutting element inplurality of cutting elements 208. Additionally, control unit 228 may beconfigured to adjust an angle that each cutting element in plurality ofcutting elements 208 cuts items to be managed 212.

In these illustrative examples, control unit 228 may comprise a numberof devices used to adjust and/or control each of plurality of cuttingelements 208. For example, control unit 228 may comprise electricaldevices, mechanical devices, pneumatic devices, hydraulic devices,electrostatic devices, electromagnetic devices and/or any other suitabledevice for adjusting and/or controlling cutting elements in a vehicle.

The illustration of worksite management environment 200 in FIG. 2 is notmeant to imply physical or architectural limitations to the manner inwhich different illustrative embodiments may be implemented. Othercomponents in addition to, and/or in place of, the ones illustrated maybe used. Some components may be unnecessary in some illustrativeembodiments. Also, the blocks are presented to illustrate somefunctional components. One or more of these blocks may be combinedand/or divided into different blocks when implemented in differentillustrative embodiments.

For example, in one illustrative embodiment, control system 206 may notinclude navigation system 226. Vehicle 202 may be a semi-autonomousvehicle and may not require navigation system 226. Alternatively,vehicle 202 may be a fully-autonomous vehicle and may rely on navigationsystem 226 to insure planning of path 204 and worksite area coverage inworksite management environment 200. In other illustrative embodiments,control system 206 may be located entirely in vehicle 202.Alternatively, control system 206 may be located entirely separate fromvehicle 202 and interface with to vehicle 202 via a wireless connection,for example. Additionally, control system 206 may include bothcomponents located on vehicle 202 and components located separate fromvehicle 202.

With reference now to FIG. 3, an illustration of a data processingsystem is depicted in accordance with an illustrative embodiment. Dataprocessing system 300 is an example of a data processing system that maybe used to implement servers and clients, such as server 104 and client108 in FIG. 1. Further, data processing system 300 may be an example ofone implementation of data processing system 224 in FIG. 2.

In this illustrative example, data processing system 300 includescommunications fabric 302, which provides communications betweenprocessor unit 304, memory 306, persistent storage 308, communicationsunit 310, input/output (I/O) unit 312, and display 314.

Processor unit 304 serves to execute instructions for software that maybe loaded into memory 306. Processor unit 304 may be a set of one ormore processors, or may be a multi-processor core, depending on theparticular implementation. Further, processor unit 304 may beimplemented using one or more heterogeneous processor systems in which amain processor is present with secondary processors on a single chip. Asanother illustrative example, processor unit 304 may be a symmetricmulti-processor system containing multiple processors of the same type.

Memory 306 and persistent storage 308 are examples of storage devices316. A storage device is any piece of hardware that is capable ofstoring information, such as, for example without limitation, data,program code in functional form, and/or other suitable informationeither on a temporary basis and/or a permanent basis. Memory 306, inthese examples, may be, for example, a random access memory, or anyother suitable volatile or non-volatile storage device. Persistentstorage 308 may take various forms depending on the particularimplementation. For example, persistent storage 308 may contain one ormore components or devices. For example, persistent storage 308 may be ahard drive, a flash memory, a rewritable optical disk, a rewritablemagnetic tape, or some combination of the above. The media used bypersistent storage 308 also may be removable. For example, a removablehard drive may be used for persistent storage 308.

Communications unit 310, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 310 is a network interface card. Communications unit310 may provide communications through the use of either or bothphysical and wireless communications links. Communications unit 310 mayprovide for communications among vehicle 202, control system 206,sensing system 222, navigational system 226, and/or control unit 228 inFIG. 2.

Input/output unit 312 allows for input and output of data with otherdevices that may be connected to data processing system 300. Forexample, input/output unit 312 may provide a connection for user inputthrough a keyboard, a mouse, and/or some other suitable input device.Further, input/output unit 312 may send output to a printer. Display 314provides a mechanism to display information to a user.

Instructions for the operating system, applications and/or programs maybe located in storage devices 316, which are in communication withprocessor unit 304 through communications fabric 302. In theseillustrative examples, the instructions are in a functional form onpersistent storage 308. These instructions may be loaded into memory 306for execution by processor unit 304. The processes of the differentembodiments may be performed by processor unit 304 using computerimplemented instructions, which may be located in a memory, such asmemory 306.

These instructions are referred to as program code, computer usableprogram code, or computer readable program code that may be read andexecuted by a processor in processor unit 304. The program code in thedifferent embodiments may be embodied on different physical or tangiblecomputer readable media, such as memory 306 or persistent storage 308.

Program code 318 is located in a functional form on computer readablemedia 320 that is selectively removable and may be loaded onto, ortransferred to, data processing system 300 for execution by processorunit 304. Program code 318 and computer readable media 320 form computerprogram product 322 in these examples. In one example, computer readablemedia 320 may be in a tangible form, such as, for example, an optical ormagnetic disc that is inserted or placed into a drive or other devicethat is part of persistent storage 308 for transfer onto a storagedevice, such as a hard drive that is part of persistent storage 308. Ina tangible form, computer readable media 318 also may take the form of apersistent storage, such as a hard drive, a thumb drive, or a flashmemory that is connected to data processing system 300. The tangibleform of computer readable media 318 is also referred to as computerrecordable storage media. In some instances, computer readable media 320may not be removable.

Alternatively, program code 318 may be transferred to data processingsystem 300 from computer readable media 318 through a communicationslink to communications unit 310 and/or through a connection toinput/output unit 312. The communications link and/or the connection maybe physical or wireless in the illustrative examples. The computerreadable media also may take the form of non-tangible media, such ascommunication links or wireless transmissions containing the programcode.

In some illustrative embodiments, program code 318 may be downloadedover a network to persistent storage 308 from another device or dataprocessing system for use within data processing system 300. Forinstance, program code stored in a computer readable storage medium in aserver data processing system may be downloaded over a network from theserver to data processing system 300. The data processing systemproviding program code 318 may be a server computer, a client computer,or some other device capable of storing and transmitting program code318.

The different components illustrated for data processing system 300 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to, or in place of, those illustrated for dataprocessing system 300. Other components shown in FIG. 3 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of executingprogram code. As one example, the data processing system may includeorganic components integrated with inorganic components and/or may becomprised entirely of organic components excluding a human being. Forexample, a storage device may be comprised of an organic semiconductor.

As another example, a storage device in data processing system 300 isany hardware apparatus that may store data. Memory 306, persistentstorage 308 and computer readable media 320 are examples of storagedevices in a tangible form.

In another example, a bus system may be used to implement communicationsfabric 302 and may be comprised of one or more buses, such as a systembus or an input/output bus. Of course, the bus system may be implementedusing any suitable type of architecture that provides for a transfer ofdata between different components or devices attached to the bus system.Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 306 or a cache such asfound in an interface and memory controller hub that may be present incommunications fabric 302.

The illustration of data processing system 300 in FIG. 3 is not meant toimply physical or architectural limitations to the manner in whichdifferent illustrative embodiments may be implemented. Other componentsin addition to, and/or in place of, the ones illustrated may be used.Some components may be unnecessary in some illustrative embodiments.Also, the blocks are presented to illustrate some functional components.One or more of these blocks may be combined and/or divided intodifferent blocks when implemented in different illustrative embodiments.

With reference now to FIG. 4, an illustration of a sensing system isdepicted in accordance with an illustrative embodiment. Sensing system400 may be an example of one implementation of sensing system 222 inFIG. 2. Sensing system 400 includes path monitoring system 402, obstacledetection unit 404, sensing devices 405, processor unit 406, anddatabase 408.

Path monitoring system 402 is used to monitor a path that a vehiclemoves on, such as path 204 and vehicle 202 in FIG. 2. Path monitoringsystem 402 acquires data regarding vehicle direction, vehicle speed, andthe width of the area cut by the plurality of cutting elements. Pathmonitoring system 402 may acquire a sequence of positions from, forexample, global positioning system 410. This acquired data may be sentto a data processing system for processing and/or storage, such as dataprocessing system 300 in FIG. 3. For example, this data may be monitoredcontinuously or periodically. Further, this data may be acquired as partof a predetermined navigational plan and stored in database 408.

In this illustrative example, sensing devices 405 and techniques usingsensing devices 405 may be incorporated into path monitoring system 402.As illustrated, sensing system 400 includes sensing devices 405 whichmay include for example, global positioning system 410, structured lightsensor 412, two dimensional/three dimensional lidar 414, dead reckoning416, infrared camera 418, visible light camera 420, radar 422,ultrasonic sonar 424, and radio frequency identification reader 426.These different sensors may be used to identify the worksite environmentaround a vehicle. Sensing devices 405 in sensing system 400 may beselected such that one of the sensors is always capable of sensinginformation needed to operate the vehicle in different operatingenvironments.

Global positioning system 410 may identify the location of the vehiclewith respect to other objects and/or obstacles in the environment.Global positioning system 410 may be any type of radio frequencytriangulation scheme based on signal strength and/or time of flight.Structured light sensor 412 emits light in a pattern, such as one ormore lines, reads back the reflections of light through a camera, andinterprets the reflections to detect and measure obstacles in theenvironment. Two dimensional/three dimensional lidar 414 is an opticalremote sensing technology that measures properties of scattered light tofind range and/or other information of a distant target. Twodimensional/three dimensional lidar 414 emits laser pulses as a beam,and then scans the beam to generate two dimensional or three dimensionalrange matrices. The range matrices are used to determine distance to anobstacle or surface by measuring the time delay between transmission ofa pulse and detection of the reflected signal.

Dead reckoning 416 begins with a known position, which is then advanced,mathematically or directly, based upon known speed, elapsed time, andcourse. The advancement based upon speed may use the vehicle odometer,or ground speed radar, to determine distance traveled from the knownposition. Infrared camera 418 detects heat indicative of a living thingversus an inanimate object. An infrared camera may also form an imageusing infrared radiation. Visible light camera 420 may be a standardstill-image camera, which may be used alone for color information orwith a second camera to generate stereoscopic or three-dimensionalimages. When visible light camera 420 is used along with a second camerato generate stereoscopic images, the two or more cameras may be set withdifferent exposure settings to provide improved performance over a rangeof lighting conditions. Visible light camera 420 may also be a videocamera that captures and records moving images.

Radar 422 uses electromagnetic waves to identify the range, altitude,direction, or speed of both moving and fixed obstacles. Radar 422 iswell known in the art, and may be used in a time of flight mode tocalculate distance to an obstacle, as well as Doppler mode to calculatethe speed of an obstacle. Ultrasonic sonar 424 uses sound propagation onan ultrasonic frequency to measure the distance to an obstacle bymeasuring the time from transmission of a pulse to reception andconverting the measurement into a range using the known speed of sound.Ultrasonic sonar 424 is well known in the art and can also be used in atime of flight mode or Doppler mode, similar to radar 422. Radiofrequency identification reader 426 relies on stored data and remotelyretrieves the data using devices called radio frequency identification(RFID) tags or transponders.

Sensing system 400 may retrieve data from one or more of sensing devices405 to obtain different perspectives of the worksite environment. Forexample, sensing system 400 may obtain visual data from visible lightcamera 420, data about the distance of the vehicle in relation toobstacles in the environment from two dimensional/three dimensionallidar 414, and location data of the vehicle in relation to a map fromglobal positioning system 410.

In these illustrative examples, obstacle detection unit 404 is used todetect obstacles that may present issues for a vehicle, such as obstacle214 and vehicle 202 in FIG. 2. Obstacle detection unit 404 uses dataacquired from sensing devices 405 and/or path monitoring system 402 toidentify areas where obstacles may affect operations of the vehicle.Obstacle detection unit 404 may detect obstacles by sending out andreceiving a plurality of signals.

In this illustrative example, obstacle detection unit 404 mayincorporate any number of sensing devices 405 to detect obstacles. Forexample, without limitation, obstacle detection unit 404 may incorporateultrasonic sonar 424 or infrared camera 418 imaging to detect a densityor temperature difference between grass to be mown and an obstacle thatmay present issues. In another example, obstacle detection unit 404 mayincorporate ultrasonic sonar 424 to detect movement differences betweengrass that is relatively stationary and an obstacle such as an animalthat may move.

In a further example, obstacles may be known and planned into apredetermined path. Path data may be stored in database 408. Forexample, obstacles may be located and identified by a human, by softwareanalyzing an aerial image, by software analyzing images taken at or nearground level, and/or by sensing system 400.

Obstacle detection unit 404 is further configured to detect dataregarding the size of the obstacle, the distance to the obstacle, andthe position of the obstacle on the path, such as for example size 216,position 218, and distance 220 of obstacle 214 in FIG. 2. Obstacledetection unit 404 may incorporate any number of sensing devices 405,techniques using any number of sensing devices 405 as discussed aboveand/or any other suitable methods to detect the data about the obstacle.

Sensing system 400 is configured to send data from path monitoringsystem 402 and obstacle detection unit 404 to processor unit 406.Processor unit 406 may be an example of one implementation of processorunit 304 in FIG. 3. In these illustrative examples, processor unit 406is configured to determine a number of cutting elements to be adjustedautonomously, a height for the number of cutting elements to beadjusted, a timing for the adjustment, and/or a speed of the adjustment.

In this illustrative example, data received from obstacle detection unit404 regarding the position of the obstacle on the path and the size ofthe obstacle may be used to determine the number of cutting elements tobe adjusted. For example, if an obstacle is narrower than the width ofthe area cut by the plurality of cutting elements of the vehicle,processor unit 406 may determine that only some, and not all, of theplurality of cutting elements may need to be adjusted. Further, datareceived regarding a position of the obstacle may be used to determinethe number of cutting elements that need to be adjusted.

In this illustrative example, data received from obstacle detection unit404 regarding the size of the obstacle may be used to determine a heightfor each of the number of cutting elements to be adjusted. For example,some obstacles may not have a uniform height. In order to prevent any ofthe plurality of cutting elements from contacting the obstacle, each ofthe number of cutting elements may need to be adjusted to a differentheight.

Further, data received from obstacle detection unit 404 regarding thesize of the obstacle and the distance between the obstacle and theplurality of cutting elements may be used to determine a timing for eachof the number of cutting elements to be adjusted. For example, datareceived regarding the distance between obstacle and the plurality ofcutting elements may be used by processor unit 406 to determine a timingfor raising each of the number of cutting elements. This timing forraising may be determined to insure that each cutting element is raisedimmediately prior to a potential contact with the obstacle. Similarly,data received regarding a length of the obstacle may be used byprocessor unit 406 to determine a timing for lowering each of the numberof cutting elements once the obstacle has been passed over.

The data used for determining the timing may be processed by processorunit 406 in real time. For example, time delays may occur while any oneof sensing devices 405 detects an obstacle, while processor unit 406processes data and/or any data is communicated among devices in sensingsystem 400. Processing in real time means that any and all of these timedelays are taken into account in the determination of the timing foreach of the number of cutting elements to be adjusted.

Processor unit 406 may also determine a timing to stop and start each ofthe number of cutting elements. For example, processor unit 406 mayreceive data from sensing system 400 regarding a distance to anobstacle. Processor unit 406 may determine an off timing for a number ofcutting elements to be turned off and stopped. The timing may be basedon data regarding the speed of the vehicle, the distance to theobstacle, the speed of the cutting elements, and the time required tostop the number of cutting elements. Likewise, an on timing may also bedetermined by processor unit 406 for the number of cutting elements tobe restarted once the obstacle has been passed by the number of cuttingelements, for example.

Processor unit 406 may also determine a speed for each of the number ofcutting elements to be adjusted. Data may be received from obstacledetection unit 404 regarding the size, slope, and/or gradient of theobstacle. This data may be used by processor unit 406 to determine thespeed for adjusting each of the number of cutting elements. For example,for a sharp obstacle detected such as a rock or sprinkler systemcomponent, the number of cutting elements may be quickly raised andlowered. Alternatively, for an obstacle detected having a roundedsurface, the cutting elements may be gradually raised and lowered.

As a result of these determinations, adjustment instructions may be sentto a control unit for the plurality of cutting elements such as controlunit 228 in FIG. 2. These adjustment instructions may reduce an areaand/or an obviousness of the area around an obstacle that is not cut.Thus, this area may not need to be separately managed. For example, anumber of cutting elements may be individually raised and lowered usingdetermined timing, height and speed parameters, such that a greateramount of grass is cut around an obstacle without any of the pluralityof cutting elements contacting the obstacle. These adjustmentinstructions may reduce a visibility of the obstacle. For example, theobstacle may be a root of a tree. It may be desirable to have the rootless visible. The adjustment instructions may be configured to maintainthe grass around the tree and the root at a greater height to reduce thevisibility of the obstacle.

The illustration of sensing system 400 in FIG. 4 is not meant to implyphysical or architectural limitations to the manner in which differentillustrative embodiments may be implemented. Other components inaddition to, and/or in place of, the ones illustrated may be used. Somecomponents may be unnecessary in some illustrative embodiments. Also,the blocks are presented to illustrate some functional components. Oneor more of these blocks may be combined and/or divided into differentblocks when implemented in different illustrative embodiments.

For example, in one illustrative embodiment, sensing system 400 may notinclude processor unit 406 and/or database 408. Data may be processedand stored separately from sensing system 400. In another example,processor unit 406 may include a plurality of processor units forprocessing data received. In other illustrative embodiments, sensingsystem 400 may include any number of sensing devices 405 workingsimultaneously. Yet, in other illustrative embodiments, sensing system400 may use obstacle detection unit 404. All obstacles may be programmedinto a predetermined area coverage plan.

With reference now to FIGS. 5-8, illustrations of a vehicle having aplurality of cutting elements is depicted in accordance with anillustrative embodiment. FIG. 5 illustrates a side view of a vehiclehaving a plurality of cutting elements in accordance with anillustrative embodiment. Vehicle 500 may be an example of one embodimentof vehicle 202 in FIG. 2. Vehicle 500 includes sensing system 502,control unit 504, plurality of cutting elements 506, and wheels 505.

Sensing system 502 may be an example of one embodiment of sensing system222 in FIG. 2. As depicted, sensing system 502 sends and receivessignals 508. Signals 508 may be used by sensing system 502 to detectobstacle 510. In this example, vehicle 500 is approaching obstacle 510.Control unit 504 is connected to plurality of cutting elements 506.Control unit 504 is configured to adjust a height of each of theplurality of the cutting elements 506. Control unit 504 may be oneexample of control unit 228 in FIG. 2.

In this depicted example, plurality of cutting elements 506 rotate andcut grass on the surface of path 512. As illustrated plurality ofcutting elements 506 are cutting at height 514 above the surface of path512. Height 514 may be a preselected height for a desired length ofgrass.

With reference now to FIG. 6, an illustration of a front view of avehicle having a plurality of cutting elements is depicted in accordancewith an illustrative embodiment. In this illustrative example, vehicle500 is depicted from view 600 of vehicle 500. As depicted, plurality ofcutting elements 506 includes cutting elements 602, 604, 606, and 608.Each of cutting elements 602, 604, 606, and 608 are positioned height514 above path 512. Control unit 504 is connected to each of cuttingelements 602, 604, 606, and 608.

With reference now to FIG. 7, an illustration of a side view of avehicle having a plurality of cutting elements is depicted in accordancewith an illustrative embodiment. In this illustrative example, vehicle500 is depicted from view 700 of vehicle 500. As depicted, vehicle 500is moving on path 512 and is moving over obstacle 510. Plurality ofcutting elements 506 are height 702 above the surface of path 512.Height 702 may be a greater distance from the surface of path 512 thanheight 514 in FIG. 5.

With reference now to FIG. 8, an illustration of a front view of avehicle having a plurality of cutting elements is depicted in accordancewith an illustrative embodiment. In this illustrative example, vehicle500 is depicted from view 800 of vehicle 500. As depicted, cuttingelements 602, 604, 606, and 608 are heights 802, 804, 806, and 808,respectively, above the surface of path 512. Control unit 504 isconnected to each of cutting elements 602, 604, 606, and 608. Controlunit 504 may be configured to adjust the height of each of cuttingelements 602, 604, 606, and 608 to heights 802, 804, 806, and 808,respectively. Heights 802, 804, 806, and 808 may be determined to reducean amount of grass around obstacle 510 on path 512 not cut by cuttingelements 602, 604, 606, and 608.

The illustrations provided in FIGS. 5-8 are not meant to imply physicalor architectural limitations to the manner in which differentillustrative embodiments can be implemented. For example, the sizes anddimensions in FIG. 5-8 may be increased or decreased depending onimplementation.

With reference now to FIG. 9, an illustration of a vehicle sculptinggrass is depicted in accordance with an illustrative embodiment. In thisillustrative example, Lawn 900 may be an example of worksite 102 inFIG. 1. As depicted, lawn 900 has vehicle 902 forming pattern 904 intolawn 900.

Vehicle 902 includes plurality of cutting elements 906. Plurality ofcutting elements 906 may be controlled by control unit 908. As vehicle902 moves over lawn 900, plurality of cutting elements form pattern 904into lawn 900. For example, without limitation, pattern 904 may beformed in lawn 900 by selectively adjusting the height, cutting speedand/or angle of plurality of cutting elements 906 with respect to lawn900. This may result in lawn 900 having grass of unequal lengths and/orshapes in certain portions. The unequal lengths of grass in certainportions may have an appearance of pattern 904 on lawn 900.

In this illustrative example, pattern 904 may be autonomously formed onlawn 900 with the use of program code 910, such as program code 318 inFIG. 3. Program code 910 may be stored on a computer readable storagedevice. Program code 910 may be configured, when executed by aprocessor, to cause control unit 908 to adjust the height, cuttingspeed, and/or angle of plurality of cutting elements 906. Theseadjustment instructions may be selectively configured in program code910 to cause plurality of cutting elements 906 to form pattern 904 onlawn 900. For example, pattern 904 may be formed in lawn 900 whilevehicle 902 is mowing lawn 900. Vehicle 902 may also form pattern 904 inlawn 900 without mowing all of lawn 900, for example.

Adjusting a cutting angle of plurality of cutting elements 906 mayfurther allow for the sculpting of pattern 904 in lawn 900. For example,control unit 908 may receive instructions to adjust the cutting angle atwhich a number of cutting elements of plurality of cutting elements 906cut with respect to the surface of lawn 900. This adjustment of thecutting angle may be used to form a beveled, sloped, and/or roundedappearance in an area of grass in lawn 900.

Additionally, pattern 904 may also be formed on lawn 900 through thedispersion of a coloring agent. Coloring agents may be stored in vehicle902. For example, without limitation, coloring agents may include paint,dye, fertilizer and/or grass seed of a certain color, and/or any otheritem suitable for adding color to lawn 900. Control unit 908 may causeplurality of cutting elements 906 to disperse coloring agents to formpattern 904.

In this manner, program code 910 and/or control unit 908 may incorporatedata from a navigational system and/or sensing system, such asnavigational system 226 and/or sensing system 222 in FIG. 2. Forexample, without limitation, a global positioning system, deadreckoning, and/or radar may be used to determine a location of vehicle902 on lawn 900. The data regarding the location of vehicle 902 on lawn900 may be used in conduction with program code 910 to form pattern 904on lawn 900.

In this illustrative example, program code 910 may be stored in vehicle902. Alternatively, program code 910 may be stored in a databaseconnected to vehicle 902 by a wireless connection. Further, program code910 may be received from a data source, such as for example, server 104and or client 108 in FIG. 1. For example, program code 910 may bedownloaded from server 104 in FIG. 1 vehicle 902 and/or a separatedatabase. Program code 910, for forming pattern 904 in lawn 900, may beone of a plurality of different program codes for forming a number ofpatterns in any of a number of lawns. These different program codes mayalso be available to be downloaded over the internet to a data storagedevice.

With reference now to FIG. 10, an illustration of a flowchart of aprocess for controlling cutting elements in a vehicle is depicted inaccordance with an illustrative embodiment. The process illustrated inFIG. 10 may be implemented in a worksite management environment, such asworksite management environment 100 in FIG. 1.

The process begins by moving a vehicle having a plurality of cuttingelements in a path (step 1000). In step 1000, the plurality of cuttingelements may be used to cut items on the path. Thereafter, the processdetects an obstacle in the path (step 1002). In step 1002, the obstaclemay be detected by a sensing system such as sensing system 222 in FIG.2. The sensing system may further detect a position of the obstacle inthe path, a size of the obstacle in the path, and a distance between thenumber of cutting elements and the obstacle.

The process then autonomously adjusts a height of a number of cuttingelements of the plurality of cutting elements in response to detectingthe obstacle in the path (step 1004), with the process terminatingthereafter. In step 1004, the height may be autonomously adjusted by acontrol unit, such as control unit 228 in FIG. 2. The autonomousadjustment of the height of the number of cutting elements may reduce anarea around the obstacle that is not cut by the plurality of cuttingelements.

With reference now to FIG. 11, an illustration of a flowchart of aprocess for controlling cutting elements in a vehicle is depicted inaccordance with an illustrative embodiment. The process illustrated inFIG. 11 may be implemented in a worksite management environment, such asworksite management environment 100 in FIG. 1.

The process begins by storing program code for a design to be formedinto a pattern (step 1100). In step 1100, the program code for thedesign to be formed into the pattern may be transferred to a computerreadable storage medium. The program code for the design to be formedinto the pattern may be one of a number of program codes for a number ofdesigns to be formed into a number of patterns. Thereafter, the processmoves a vehicle having a plurality of cutting elements in a path (step1102). In step 1102 the plurality of cutting elements may be used to cutitems on the path.

The process then executes the program code on a processor unit (step1104). The process then autonomously controls the plurality of cuttingelements to form in the pattern in response to executing the programcode (step 1106), with the process terminating thereafter. In step 1106,the program code, when executed by the processor unit, may be configuredto cause a control element, such as control element 228 in FIG. 2, toautonomously adjust the plurality of cutting elements. The plurality ofcutting elements may then be used to form the pattern on the path. Thecontrol element may also be configured to adjust the path of the cuttingelements. For example, the program code, when executed, may cause thevehicle to move in an adjusted path. Adjusting the path may allow theplurality of cutting elements to form greater detail into the design.

With reference now to FIG. 12, an illustration of a flowchart of aprocess for controlling cutting elements in a vehicle is depicted inaccordance with an illustrative embodiment. The process illustrated inFIG. 12 may be implemented in a worksite management environment, such asworksite management environment 100 in FIG. 1.

The process begins by monitoring a path (step 1200). In step 1200, thepath may be a path in front of a vehicle that the vehicle may move on.The monitoring of the path may be performed by a path monitoring systemsuch as path monitoring system 402 in FIG. 4. The process thendetermines if an obstacle has been detected on the path (step 1202). Instep 1202, an obstacle detection unit, such as obstacle detection unit404, in FIG. 4 may be used to detect obstacles on the path. Any numberof sensing devices may be used to detect obstacles on the path. If adetermination is made that an obstacle has not been detected, theprocess monitors the path (step 1200).

If a determination is made that an obstacle has been detected on thepath, the process then determines if action is necessary (step 1204). Instep 1204, the determination if action is necessary may be made by aprocessor unit, such as processor unit 406 in FIG. 4. The determinationmay be based on data received regarding the size of the obstacle. Forexample, if the obstacle is smaller than a height that a plurality ofcutting elements is above the path, then action may not be necessary. Ifa determination is made that action is not necessary, the processmonitors the path (step 1200).

If a determination is made that action is necessary, the process thendetermines if it is possible to move over the obstacle (step 1206). Instep 1206, this determination may be based on data regarding the size ofthe obstacle a maximum height the plurality of cutting elements may beraised in the vehicle. For example, if the obstacle is larger than themaximum height the plurality of cutting elements may be raised, then itmay not be possible to move over the obstacle. If a determination ismade that it is not possible to move over the obstacle, then the processmoves the vehicle around the obstacle (step 1210). In step 1210, movingthe vehicle around the obstacle may be performed by a navigationalsystem and/or a control unit connected to the vehicle, such asnavigation system 226 and/or control unit 228 in FIG. 2. The processmonitors the path (step 1200).

If a determination is made that it is possible to move over theobstacle, the process then detects a width and a position of theobstacle on the path (step 1212). For example, in step 1212 thisdetection may be performed by a number of sensing devices such assensing devices 405 in FIG. 4. Thereafter, the process determines anumber of cutting elements affected by the obstacle (step 1214). In step1214, this determination may be performed by a processor unit, such asprocessor unit 406 in FIG. 4. This determination may be based on datareceived regarding the width and the position of the object on the path,as well as data known about the configuration of each of the pluralityof cutting elements in the vehicle. For example, a number of cuttingelements affected may be the number of cutting elements that may contactthe obstacle if the vehicle were to continue to move on the path.

The process then determines for each of the number of cutting elementsdetermined to be affected by the obstacle a raising time, a raisingrate, a height to raise, a lowering time, and a lowering rate (step1216). In step 1216, these determinations may be performed by aprocessor unit, such as processor unit 406 in FIG. 4. Thesedeterminations may be based on data received regarding the size of theobject on the path, the distance between the object and the vehicle, thespeed of the vehicle, and/or any other available data. This datareceived may be acquired by a sensing system such as sensing system 400.Additionally, the data received may be data stored in a database, suchas database 408 in FIG. 4.

The process then sends instructions for raising each of the number ofcutting elements to a control unit (step 1218). In step 1218, theinstructions may include a time, a height, and a rate for each of thenumber of cutting elements to be raised. The process then raises each ofthe number of cutting elements according to the instructions (step1219). The control unit may be configured to raise each of the number ofcutting elements according to the instructions.

Thereafter, the process sends instructions for lowering each of thenumber of cutting elements to a control unit (step 1220). In step 1220,the instructions may include a time, an amount, and a rate for each ofthe number of cutting elements to be lowered. The process then lowerseach of the number of cutting elements according to the instructions(step 1221). The control unit may be configured to lower each of thenumber of cutting elements according to the instructions. Theinstructions for raising and lowering each of the number of cuttingelements may be configured to reduce an area around the obstacle not cutby the plurality of cutting elements.

The process then determines if continued monitoring is necessary (step1222). In step 1222, for example, continued monitoring may not benecessary if the vehicle is at rest or has completed a task. If adetermination is made that continued monitoring is necessary, theprocess monitors the path (step 1200). If a determination is made thatcontinued monitoring is not necessary, the process terminatesthereafter.

With reference now to FIG. 13, an illustration of a flowchart of aprocess for controlling cutting elements in a vehicle is depicted inaccordance with an illustrative embodiment. The process illustrated inFIG. 13 may be implemented in a worksite management environment, such asworksite management environment 100 in FIG. 1.

The process begins by monitoring a path (step 1300). In step 1300, thepath may be a path in front of a vehicle that the vehicle may move on.The process then determines if an obstacle has been detected on the path(step 1302).

If a determination is made that an obstacle has not been detected, theprocess monitors the path (step 1300). If a determination is made thatan obstacle has been detected on the path, the process then determinesif action is necessary (step 1304).

If a determination is made that action is not necessary, the processmonitors the path (step 1300). If a determination is made that action isnecessary, the process then detects a width and a position of theobstacle on the path (step 1306). Thereafter, the process determines anumber of cutting elements affected by the obstacle (step 1308).

The process then determines for each of the number of cutting elementsdetermined to be affected by the obstacle an off timing and an on timing(step 1310). In step 1310, these determinations may be performed by aprocessor unit, such as processor unit 406 in FIG. 4. Thesedeterminations may be based on data received regarding the size of theobject on the path, the distance between the object and the vehicle, thespeed of the vehicle, the time needed for the number of cutting elementsto be stopped from cutting and/or any other available data. This datareceived may be acquired by a sensing system such as sensing system 400.Additionally, the data received may be data stored in a database, suchas database 408 in FIG. 4.

The process then sends instructions for stopping each of the number ofcutting elements to a control unit (step 1312). In step 1312, theinstructions may include a timing for each of the number of cuttingelements to be stopped. The process then stops each of the number ofcutting elements according to the instructions (step 1313). The controlunit may be configured to stop each of the number of cutting elementsaccording to the instructions.

Thereafter, the process sends instructions for starting each of thenumber of cutting elements to a control unit (step 1314). In step 1314,the instructions may include a timing for each of the number of cuttingelements to be started. The process then starts each of the number ofcutting elements according to the instructions (step 1315). The controlunit may be configured to start each of the number of cutting elementsaccording to the instructions. The instructions for stopping andstarting each of the number of cutting elements may be configured toreduce an area around the obstacle not cut by the plurality of cuttingelements.

The process then determines if continued monitoring is necessary (step1316). In step 1316, for example, continued monitoring may not benecessary if the vehicle is at rest or has completed a task. If adetermination is made that continued monitoring is necessary, theprocess monitors the path (step 1300). If a determination is made thatcontinued monitoring is not necessary, the process terminatesthereafter.

The flowcharts and block diagrams in the different depicted embodimentsillustrate the architecture, functionality, and operation of somepossible implementations of apparatus and methods in differentillustrative embodiments. In this regard, each block in the flowchartsor block diagrams may represent a module, segment, function, and/or aportion of an operation or step.

In some alternative implementations, the function or functions noted inthe blocks may occur out of the order noted in the figures. For example,in some cases, two blocks shown in succession may be executedsubstantially concurrently, or the blocks may sometimes be executed inthe reverse order, depending upon the functionality involved. Also,other blocks may be added in addition to the illustrated blocks in aflowchart or block diagram.

Thus, the different illustrative embodiments provide a method andapparatus for an autonomous cutting element for sculpting grass. In oneillustrative embodiment, the cutting elements are configured toautonomously avoid contacting obstacles that may cause harm to thecutting element or the obstacle. The cutting elements are configured toautonomously reduce an area around the obstacle that is not cut by thecutting elements. This reduced area reduces the need for additionalmanagement. In another illustrative embodiment, the cutting elements areconfigured to autonomously form patterns.

The description of the different illustrative embodiments has beenpresented for purposes of illustration and description, and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art. Further, different embodiments may providedifferent advantages as compared to other embodiments. The embodiment orembodiments selected are chosen and described in order to best explainthe principles of the invention, the practical application, and toenable others of ordinary skill in the art to understand the inventionfor various embodiments with various modifications as are suited to theparticular use contemplated.

1. An apparatus comprising: a vehicle movable in a path, the vehiclehaving a first number of cutting elements; a sensing unit for detectingan obstacle in the path; and a control unit connected to the firstnumber of cutting elements, the control unit being configured toautonomously adjust a height of a second number of cutting elements ofthe first number of cutting elements in response to the sensing unitdetecting the obstacle in the path.
 2. The apparatus of claim 1, whereinthe sensing unit is configured to detect a position of the obstacle inthe path, a size of the obstacle in the path, and a distance between thesecond number of cutting elements and the obstacle.
 3. The apparatus ofclaim 2 further comprising: a processor unit configured to determine thesecond number of cutting elements to be autonomously adjusted, a heightfor each of the second number of cutting elements to be autonomouslyadjusted, and a timing for each of the second number of cutting elementsto be autonomously adjusted.
 4. The apparatus of claim 3, wherein theprocessor unit is configured to determine a first time for the controlunit to autonomously raise each of the second number of cutting elementsand a second time for the control unit to autonomously lower each of thesecond number of cutting elements.
 5. The apparatus of claim 3, whereinthe determination of the second number of cutting elements to beautonomously adjusted, the height for each of the second number ofcutting elements to be autonomously adjusted, and the timing for each ofthe second number of cutting elements to be autonomously adjusted atleast reduces one of an area around the obstacle that is not cut by thefirst number of cutting elements, an obviousness of the area around theobstacle, and a visibility of the obstacle.
 6. The apparatus of claim 1further comprising: a computer readable storage medium storing programcode for a design to be formed into a pattern, and a processor unit,wherein the processor unit executes the program code and wherein theprogram code, when executed by the processor unit, causes the controlunit to autonomously control the first number of cutting elements toform the pattern.
 7. The apparatus of claim 6, wherein the program codefor the design to be formed into the pattern is one of a number ofprogram codes for a number of designs to be formed into a number ofpatterns, and wherein the number of program codes is transferred to thecomputer readable storage medium from a data source.
 8. The apparatus ofclaim 1, wherein the sensing unit comprises a number of sensors selectedfrom at least one of a global positioning system, structured lightsensor, two dimensional/three dimensional lidar, dead reckoning,infrared camera, visible light camera, radar, ultrasonic sonar, radiofrequency identification reader, moisture sensor, and ambient lightsensor.
 9. The apparatus of claim 1, wherein the control unit isconfigured to stop the second number of cutting elements of the firstnumber of cutting elements from cutting in response to the sensing unitdetecting the obstacle in the path of the vehicle.
 10. The apparatus ofclaim 1, wherein the control unit is configured to adjust a cuttingangle of the second number of cutting elements of the first number ofcutting elements in response to the sensing unit detecting the obstaclein the path of the vehicle.
 11. A method of controlling cutting elementsin a vehicle, the method comprising: moving a vehicle having a firstnumber of cutting elements in a path; detecting an obstacle in the path;and responsive to detecting the obstacle in the path, autonomouslyadjusting a height of a second number of cutting elements of the firstnumber of cutting elements.
 12. The method of claim 11 furthercomprising: detecting a position of the obstacle in the path; detectinga size of the obstacle in the path; and detecting a distance between thesecond number of cutting elements and the obstacle.
 13. The method ofclaim 12 further comprising: responsive to detecting the position of theobstacle in the path, the size of the obstacle in the path, and thedistance between the second number of cutting elements and the obstacle;determining the second number of cutting elements to be autonomouslyadjusted, a height for each of the second number of cutting elements tobe autonomously adjusted, and a timing for each of the second number ofcutting elements to be autonomously adjusted.
 14. The method of claim 13further comprising: determining a first time for the control unit toautonomously raise each of the second number of cutting elements; anddetermining a second time for the control unit to autonomously lowereach of the second number of cutting elements.
 15. The method of claim13 further comprising: responsive to determining the second number ofcutting elements to be autonomously adjusted, the height for each of thesecond number of cutting elements to be autonomously adjusted, and thetiming for each of the second number of cutting elements to beautonomously adjusted; reducing at least one of an area around theobstacle that is not cut by the first number of cutting elements, anobviousness of the area around the obstacle, and a visibility of theobstacle.
 16. The method of claim 11 further comprising: storing programcode for a design to be formed into a pattern; executing, by a processorunit, the program code; and responsive to executing the program code,autonomously controlling the first number of cutting elements to form inthe pattern.
 17. The method of claim 16 further comprising: transferringthe program code for a design to be formed into a pattern to a computerreadable storage medium, wherein the program code for the design to beformed into the pattern is one of a number of program codes for a numberof designs to be formed into a number of patterns.
 18. The method ofclaim 11, wherein the step of detecting an obstacle in the path of thevehicle is performed by a sensing unit and wherein the sensing unitcomprises a number of sensors selected from at least one of a globalpositioning system, structured light sensor, two dimensional/threedimensional lidar, dead reckoning, infrared camera, visible lightcamera, radar, ultrasonic sonar, radio frequency identification reader,moisture sensor, and ambient light sensor.
 19. The method of claim 11further comprising: responsive to detecting the obstacle in the path ofthe vehicle, stopping the second number of cutting elements of the firstnumber of cutting elements from cutting.
 20. The method of claim 11further comprising: responsive to detecting the obstacle in the path ofthe vehicle, adjusting a cutting angle of the second number of cuttingelements of the first number of cutting elements.
 21. A computer programproduct comprising: a computer readable storage medium; program code,stored on the computer readable storage medium, for moving a vehiclehaving a first number of cutting elements in a path, detecting anobstacle in the path; and autonomously adjusting a height of a secondnumber of cutting elements of the first number of cutting elements inresponse to detecting the obstacle in the path.
 22. The computer programproduct of claim 21, further comprising: program code for detecting aposition of the obstacle in the path, detecting a size of the obstaclein the path, and detecting a distance between the second number ofcutting elements and the obstacle.
 23. The computer program product ofclaim 22 further comprising: program code for determining the secondnumber of cutting elements to be autonomously adjusted, a height foreach of the second number of cutting elements to be autonomouslyadjusted, and a timing for each of the second number of cutting elementsto be autonomously adjusted in response to detecting the position of theobstacle in the path, the size of the obstacle in the path, and thedistance between the second number of cutting elements and the obstacle.24. The computer program product of claim 23 further comprising: programcode for determining a first time for the control unit to autonomouslyraise each of the second number of cutting elements and determining asecond time for the control unit to autonomously lower each of thesecond number of cutting elements.
 25. The computer program product ofclaim 23 further comprising: program code for reducing at least one ofan area around the obstacle that is not cut by the first number ofcutting elements, an obviousness of the area around the obstacle, and avisibility of the obstacle; in response to determining the second numberof cutting elements to be autonomously adjusted, the height for each ofthe second number of cutting elements to be autonomously adjusted, andthe timing for each of the second number of cutting elements to beautonomously adjusted.
 26. The computer program product of claim 21further comprising: program code for a design to be formed into apattern; and program code for autonomously controlling the first numberof cutting elements to form the pattern.
 27. The computer programproduct of claim 26 further comprising: program code for transferringthe program code for the design to be formed into a pattern to thecomputer readable storage medium, wherein the program code for thedesign to be formed into the pattern is one of a number of program codesfor a number of designs to be formed into a number of patterns.
 28. Thecomputer program product of claim 21, wherein the program code fordetecting the obstacle in the path is performed by a sensing unitcomprising a number of sensors selected from at least one of a globalpositioning system, structured light sensor, two dimensional/threedimensional lidar, dead reckoning, infrared camera, visible lightcamera, radar, ultrasonic sonar, radio frequency identification reader,moisture sensor, and ambient light sensor.
 29. The computer programproduct of claim 21 further comprising: program code for stopping thesecond number of cutting elements of the first number of cuttingelements from cutting in response to detecting the obstacle in the pathof the vehicle.
 30. The computer program product of claim 21 furthercomprising: program code for adjusting a cutting angle of the secondnumber of cutting elements of the first number of cutting elements inresponse to detecting the obstacle in the path of the vehicle.
 31. Avehicle comprising: a plurality of cutting elements, wherein the vehicleis movable on a path; a sensing unit configured to detect an obstacle inthe path, a position of the obstacle in the path, a size of the obstaclein the path, and a distance between the plurality of cutting elementsand the obstacle; a processor unit configured to determine a number ofcutting elements to be autonomously adjusted, a height for each of thenumber of cutting elements to be autonomously adjusted, and a timing foreach of the number of cutting elements to be autonomously adjusted; anda control unit connected to the plurality of cutting elements, thecontrol unit being configured to autonomously adjust each of the numberof cutting elements of the plurality of cutting elements according tothe height and the timing determined for each of the number of cuttingelements.
 32. The vehicle of claim 31 further comprising: a computerreadable storage medium storing program code for a design to be formedinto a pattern, and a processor unit, wherein the processor unitexecutes the program code and wherein the program code, when executed bythe processor unit, causes the control unit to autonomously control theplurality of cutting elements to form the pattern.
 33. The vehicle ofclaim 32, wherein the program code for the design to be formed into thepattern is one of a number of program codes for a number of designs tobe formed into a number of patterns, and wherein the number of programcodes is transferred to the computer readable storage medium from a datasource.
 34. The vehicle of claim 31, wherein the control unit isconfigured to stop the number of cutting elements of the plurality ofcutting elements from cutting in response to the sensing unit detectingthe obstacle in the path of the vehicle.
 35. The apparatus of claim 31,wherein the control unit is configured to adjust a cutting angle of thenumber of cutting elements of the plurality of cutting elements inresponse to the sensing unit detecting the obstacle in the path of thevehicle.